/******************************************************
Cours:   LOG121
Session: A2013
Groupe:  01
Projet: Laboratoire #3
�tudiant(e)s:  Jean-Christophe Decary
				Guillaume Durand
				Phillipe potvin
              
              
Professeur : Ghizlane El Boussaidi
Nom du fichier: Bunco.java
Date cr��: 2013-11-14

*******************************************************/

package bunco;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;

import framework.De;
import framework.IStrategie;
import framework.Joueur;
import framework.Partie;

public class Bunco extends framework.Game{
	public Bunco(){}
	@Override
	public void makePlay(Joueur pJoueur) {
		boolean canPlay=true;
		while(canPlay){
			canPlay=calculerScoreTour();
		}
	}
	@Override
	public boolean calculerScoreTour() {
		int roll1=(int)this.gameDices.get(0).rouller().getContent();
		int roll2=(int)this.gameDices.get(1).rouller().getContent();
		int roll3=(int)this.gameDices.get(2).rouller().getContent();
		boolean roolPoint1=(roll1==this.currentGame.getCurrentTurn());
		boolean roolPoint2=(roll2==this.currentGame.getCurrentTurn());
		boolean roolPoint3=(roll3==this.currentGame.getCurrentTurn());
		boolean roolFakeBunco=(roll1==roll2&&roll2==roll3&&roll1!=this.currentGame.getCurrentTurn());
		int result=0;
		if(roolPoint1&&roolPoint2&&roolPoint3)
			result=21;
		else if(roolFakeBunco)
			result=5;
		else if(roolPoint1&&roolPoint2||roolPoint1&&roolPoint3||roolPoint2&&roolPoint3)
			result=2;
		else if(roolPoint1||roolPoint2||roolPoint3)
			result=1;
		System.out.println("tour courant:"+this.currentGame.getCurrentTurn()+" points:"+result+" id joueur: "+this.currentGame.getCurrentPlayer().getId());
		this.currentGame.getCurrentPlayer().setScore(this.currentGame.getCurrentPlayer().getScore()+result);
		if(result==0)
			return false;
		if(result>0&&result<21)
			return true;
		if(result==21)
			return false;
		
		return false;
	}
	@Override
	public List<Joueur> calculerLeVainqueur(List<Joueur> j) {
		List<Joueur> gameResults=new ArrayList<Joueur>(j);
		Collections.sort(gameResults);
		return gameResults;
		
	}

}
